package model;

import java.util.Set;

import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.OneToMany;
import javax.persistence.Table;
import javax.persistence.Column;

@Entity
@Table(name="Parametro")
public class Parametro {
	private int id_parametro;
	private String descripcion;
	private String codigoUnico;
	private String nombre;
	private Set<Almacen> estadoAlmacen;
	private Set<Direccion> departamento;
	private Set<Direccion> provincia;
	private Set<Direccion> distrito;
	private Set<Movimiento> tipoMovimiento;
	private Set<Persona> estadoPersona;
	private Set<Persona> tipoDocumento;
	private Set<Persona> tipoPersona;
	private Set<Producto> unidad;
	private Set<Producto> tipoProducto;
	private Set<Usuario> estadoUsuario;
	private Set<Vehiculo> estadoVehiculo;
	private Set<Vehiculo> marca;
	private Set<Vehiculo> modelo;
	
	
	public Parametro(){
		
	}
	
	@Id
	@GeneratedValue(strategy=GenerationType.IDENTITY)
	@Column(name="id_parametro")
	public int getId_parametro() {
		return id_parametro;
	}

	public void setId_parametro(int id_parametro) {
		this.id_parametro = id_parametro;
	}

	@Column(name = "descripcion", length = 50)
	public String getDescripcion() {
		return descripcion;
	}
	
	public void setDescripcion(String descripcion) {
		this.descripcion = descripcion;
	}

	@Column(name = "codigoUnico", length = 50)
	public String getCodigoUnico() {
		return codigoUnico;
	}

	public void setCodigoUnico(String codigoUnico) {
		this.codigoUnico = codigoUnico;
	}

	@Column(name = "nombre", length = 50)
	public String getNombre() {
		return nombre;
	}

	public void setNombre(String nombre) {
		this.nombre = nombre;
	}

	@OneToMany(fetch = FetchType.EAGER, mappedBy = "estadoAlmacen")
	public Set<Almacen> getEstadoAlmacen() {
		return estadoAlmacen;
	}

	public void setEstadoAlmacen(Set<Almacen> estadoAlmacen) {
		this.estadoAlmacen = estadoAlmacen;
	}

	@OneToMany(fetch = FetchType.EAGER, mappedBy = "departamento")
	public Set<Direccion> getDepartamento() {
		return departamento;
	}

	public void setDepartamento(Set<Direccion> departamento) {
		this.departamento = departamento;
	}

	@OneToMany(fetch = FetchType.EAGER, mappedBy = "provincia")
	public Set<Direccion> getProvincia() {
		return provincia;
	}

	public void setProvincia(Set<Direccion> provincia) {
		this.provincia = provincia;
	}

	@OneToMany(fetch = FetchType.EAGER, mappedBy = "distrito")
	public Set<Direccion> getDistrito() {
		return distrito;
	}

	public void setDistrito(Set<Direccion> distrito) {
		this.distrito = distrito;
	}

	@OneToMany(fetch = FetchType.EAGER, mappedBy = "tipo")
	public Set<Movimiento> getTipoMovimiento() {
		return tipoMovimiento;
	}

	public void setTipoMovimiento(Set<Movimiento> tipoMovimiento) {
		this.tipoMovimiento = tipoMovimiento;
	}

	@OneToMany(fetch = FetchType.EAGER, mappedBy = "estadoPersona")
	public Set<Persona> getEstadoPersona() {
		return estadoPersona;
	}

	public void setEstadoPersona(Set<Persona> estadoPersona) {
		this.estadoPersona = estadoPersona;
	}

	@OneToMany(fetch = FetchType.EAGER, mappedBy = "tipoDocumento")
	public Set<Persona> getTipoDocumento() {
		return tipoDocumento;
	}

	public void setTipoDocumento(Set<Persona> tipoDocumento) {
		this.tipoDocumento = tipoDocumento;
	}
	
	@OneToMany(fetch = FetchType.EAGER, mappedBy = "tipoPersona")
	public Set<Persona> getTipoPersona() {
		return tipoPersona;
	}

	public void setTipoPersona(Set<Persona> tipoPersona) {
		this.tipoPersona = tipoPersona;
	}

	@OneToMany(fetch = FetchType.EAGER, mappedBy = "unidad")
	public Set<Producto> getUnidad() {
		return unidad;
	}
	
	public void setUnidad(Set<Producto> unidad) {
		this.unidad = unidad;
	}

	@OneToMany(fetch = FetchType.EAGER, mappedBy = "tipoProducto")
	public Set<Producto> getTipoProducto() {
		return tipoProducto;
	}

	public void setTipoProducto(Set<Producto> tipoProducto) {
		this.tipoProducto = tipoProducto;
	}

	@OneToMany(fetch = FetchType.EAGER, mappedBy = "estadoUsuario")
	public Set<Usuario> getEstadoUsuario() {
		return estadoUsuario;
	}

	public void setEstadoUsuario(Set<Usuario> estadoUsuario) {
		this.estadoUsuario = estadoUsuario;
	}

	@OneToMany(fetch = FetchType.EAGER, mappedBy = "estadoVehiculo")
	public Set<Vehiculo> getEstadoVehiculo() {
		return estadoVehiculo;
	}

	public void setEstadoVehiculo(Set<Vehiculo> estadoVehiculo) {
		this.estadoVehiculo = estadoVehiculo;
	}

	@OneToMany(fetch = FetchType.EAGER, mappedBy = "marca")
	public Set<Vehiculo> getMarca() {
		return marca;
	}

	public void setMarca(Set<Vehiculo> marca) {
		this.marca = marca;
	}

	@OneToMany(fetch = FetchType.EAGER, mappedBy = "modelo")
	public Set<Vehiculo> getModelo() {
		return modelo;
	}

	public void setModelo(Set<Vehiculo> modelo) {
		this.modelo = modelo;
	}
}
